$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Претрага у дубину

Претрага у дубину можемо описати на следећи начин. Замислимо да обилазимо музеј који се састоји од повезаних сала. Музеј обилазимо тако што из сваке сале у коју дођемо прелазимо у неку наредну, до тада непосећену салу, све док је то могуће. Тек када то није могуће, враћамо се у салу из које смо дошли у текућу и проверавамо да ли из ње можемо одемо у неку до тада не посећену салу. Обилазак се завршава када се вратимо у почетну салу и установимо да из ње више не можемо да одемо ни у једну салу у којој до тада нисмо били.

Постоје два уобичајена начина да се имплементира претрага у дубину:

  • рекурзивна имплементација

  • имплементација уз помоћ стека

Прикажимо обе имплементације у облику псеудокода.

Рекурзивна имплементација:

obidji(polje): obelezi polje za sve neobelezene susede polja: obidji(sused)

Имплементација уз помоћ стека:

obidji(pocetno_polje): stavi pocetno_polje na stek obelezi pocetno_polje dok stek nije prazan: skini polje sa vrha steka za neobelezene susede tog polja: stavi suseda na stek obelezi suseda